﻿using System;
using System.Collections.Generic;
using System.Web;
using DeviceInfoManage.DataAccessHelper; /*引入字符串函数类的命名空间*/
using DeviceInfoManage.DataAccessLayer;
using System.Data;  /*引入数据层类的命名空间*/
/// <summary>
///FileType 的摘要说明
/// </summary>
namespace DeviceInfoManage.BusinessLogicLayer
{
    /*本业务类和数据库中的设备类别表相对应，负责管理设备类型*/
    /*设备类型信息表
     CREATE TABLE [dbo].[fileType] (
	   [fileTypeId] [int] IDENTITY (1, 1) NOT NULL ,  		        //设备类型编号
	   [fileTypeName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL   //设备类型名称
     ) ON [PRIMARY]*/
    public class FileType
    {
        private int fileTypeId;           /*设备类别编号*/
        private string fileTypeName;      /*设备类别名称*/
        private string errMessage;          /*保存操作的错误信息*/
        #region MyRegion
        public int FileTypeId
        {
            set
            {
                this.fileTypeId = value;
            }
            get
            {
                return this.fileTypeId;
            }
        }
        public string FileTypeName
        {
            set
            {
                this.fileTypeName = value;
            }
            get
            {
                return this.fileTypeName;
            }
        }
        public string ErrMessage
        {
            set
            {
                this.errMessage = value;
            }
            get
            {
                return this.errMessage;
            }
        }
        #endregion

        public FileType()
        {
            this.fileTypeId = 0;
            this.fileTypeName = "";
        }

        /*添加新的设备类别*/
        public bool AddFileType(string FileTypeName)
        {
            /*首先判断系统中是否已经存在了该类别名称*/
            DataBase db = new DataBase();
            string queryString = "select * from fileType where fileTypeName=" + SqlString.GetQuotedString(FileTypeName);
            if (db.GetRecord(queryString))
            {
                this.errMessage = "该类别名称系统已经存在!";
                return false;
            }
            /*如果系统中不存在该类别,就可以执行新的类别名称的加入*/
            string insertString = "insert into fileType(fileTypeName) values(" + SqlString.GetQuotedString(FileTypeName) + ")";
            if (db.InsertOrUpdate(insertString) < 0)
            {
                this.errMessage = "新设备类别信息加入数据库时发生了错误！";
                return false;
            }
            return true;
        }

        /*修改已经存在的类别*/
        public bool UpdateFileType(int fileTypeId, string fileTypeName)
        {
            /*首先判断系统中是否已经存在了该类别名称*/
            DataBase db = new DataBase();
            string queryString = "select * from fileType where fileTypeName=" + SqlString.GetQuotedString(fileTypeName);
            if (db.GetRecord(queryString))
            {
                this.errMessage = "该类别名称系统已经存在!";
                return false;
            }
            /*然后执行根据id更新类别名称信息*/
            string updateString = "update fileType set fileTypeName=" + SqlString.GetQuotedString(fileTypeName);
            updateString += " where fileTypeId=" + fileTypeId.ToString();
            if (db.InsertOrUpdate(updateString) < 0)
            {
                this.errMessage = "修改类别名称时发生了错误！";
                return false;
            }
            return true;
        }

        /*删除某个分类编号的设备分类信息*/
        public bool DeleteFileType(int fileTypeId)
        {
            /*首先判断该分类下是否还有设备，如果有是不能执行删除的*/
            DataBase db = new DataBase();
            string queryString = "select * from fileInfo where fileTypeId=" + fileTypeId;
            if (db.GetRecord(queryString))
            {
                this.errMessage = "该分类下还存在设备信息，不能执行删除操作!";
                return false;
            }

            string deleteString = "delete from fileType where fileTypeId=" + fileTypeId;
            if (db.InsertOrUpdate(deleteString) < 0)
            {
                this.errMessage = "删除设备类别信息时发生了错误!";
                return false;
            }
            return true;
        }

        /*根据设备分类编号获取设备名称*/
        public string GetFileTypeName(int fileTypeId)
        {
            string queryString = "select fileTypeName from fileType where fileTypeId=" + fileTypeId;
            DataBase db = new DataBase();
            DataSet ds = db.GetDataSet(queryString);
            if (ds.Tables[0].Rows.Count == 0) return String.Empty;
            return ds.Tables[0].Rows[0]["fileTypeName"].ToString();
        }

        /*得到所有的设备类型信息*/
        public DataSet GetFileType()
        {
            string queryString = "select fileTypeId,fileTypeName from fileType";
            DataBase db = new DataBase();
            return db.GetDataSet(queryString);
        }

        /*根据设备编号得到设备类别名称*/
        public string GetFileType(int fileId)
        {
            string queryString = "select fileTypeName from fileType,fileInfo where fileInfo.fileTypeId = fileType.fileTypeId and fileInfo.fileId=" + fileId;
            DataBase db = new DataBase();
            DataSet ds = db.GetDataSet(queryString);
            return ds.Tables[0].Rows[0]["fileTypeName"].ToString();
        }
    }
}
